| MATLAB Function Reference | ![]() |
Open a file or obtain information about open files
Syntax
fid = fopen(filename)
fid = fopen(filename,permission)
[fid,message] = fopen(filename,permission,machineformat)
fids = fopen('all')
[filename,permission, machineormat] = fopen(fid)
Description
fid = fopen(filename) opens the file filename for read access. (On PCs,
fopen opens files for binary read access.)
fid is a scalar MATLAB integer, called a file
identifier. You use the fid as the first argument to other file
input/output routines. If fopen cannot open the file, it returns
-1. Two file identifiers are automatically available and need not
be opened. They are fid=1 (standard output) and fid=2
(standard error).
fid = fopen(filename,permission) opens the file filename in the mode specified by
permission. permission can be:
filename can be a MATLABPATH
relative partial pathname if the file is opened for reading only. A relative
path is always searched for first with respect to the current directory. If it
is not found and reading only is specified or implied then fopen does an
additional search of the MATLABPATH
Files can be opened in binary mode (the default) or in
text mode. In binary mode, no characters are singled out for special treatment.
In text mode on the PC, , the carriage return character preceding a newline
character is deleted on input and added before the newline character on output.
To open in text mode, add "t" to the permission string, for example
'rt' and 'wt+'. (On Unix, text and binary mode are the
same so this has no effect. But on PC systems this is critical.)
Note If the
file is opened in update mode ('+'), an input command like fread,
fscanf,
fgets,
or fgetl
cannot be immediately followed by an output command like fwrite
or fprintf
without an intervening fseek
or frewind.
The reverse is also true. Namely, an output command like
fwrite or fprintf cannot be immediately
followed by an input command like fread,
fscanf, fgets, or fgetl without
an intervening fseek or frewind.
|
[fid,message] = fopen(filename,permission) opens a file as above. If it cannot open the file,
fid equals -1 and message contains a
system-dependent error message. If fopen successfully opens a file,
the value of message is empty.
[fid,message] =
fopen(filename,permission,machineformat) opens the specified file with
the specified permission and treats data read using
fread or data written using fwrite as having a format
given by machineformat. machineformat is one of the
following strings:
fids = fopen('all') returns a row vector containing the file identifiers of all open
files, not including 1 and 2 (standard output and
standard error). The number of elements in the vector is equal to the number of
open files.
[filename,permission,machineformat] = fopen(fid)
returns the filename,
permission string, and machineformat string associated
with the specified file. An invalid fid returns empty strings for
all output arguments.
The 'W' and 'A' permissions are
designed for use with tape drives and do not automatically perform a flush of
the current output buffer after output operations. For example, open a 1/4"
cartridge tape on a SPARCstation for writing with no auto-flush:
fid = fopen('/dev/rst0','W')
Example
The example uses fopen to open a file and
then passes the fid, returned by fopen, to other file
I/O functions to read data from the file and then close the file.
fid=fopen('fgetl.m');
while 1
tline = fgetl(fid);
if ~ischar(tline), break, end
disp(tline)
end
fclose(fid);
See Also
fclose,
ferror,
fprintf,
fread,
fscanf,
fseek,
ftell,
fwrite
|
fminsearch | fopen (serial) | ![]() |